//#include <windows.h>
//#include <stdio.h>
/*
#include <windows.h>
 
typedef struct
{
    int hp;
    int mp;
}Object;
 
#define __stdcall __attribute__((__stdcall__))
 
int __stdcall add(int a, int b);
//extern int __stdcall add(int a, int b) = 0x41c29e;
 
int fib(int n)
{
    if (n <= 2)
        return 1;
    else
        return fib(n-1) + fib(n-2);
}
 
int foo(int n)
{
    printf("Hello World!\n");
    printf("fib(%d) = %d\n", n, fib(n));
    printf("add(%d, %d) = %d\n", n, 2 * n, add(n, 2 * n));
    return 0;
}

int main(int argc, char** argv)
{
	MessageBoxA(0, 0, 0, 0);
	Object ob;
	ob.hp = 100;
	ob.mp = 200;
	printf("main\n");
	foo(10);
	return 0xdeb;
}
*/
//#include <windows.h>
#ifndef __stdcall
#	define __stdcall __attribute__((__stdcall__))
#endif//__stdcall

#ifndef __cdecl
#	define __cdecl __attribute__((__cdecl__))
#endif//__cdecl

int __stdcall shit(int a, int b, int c, int d)
	: register(ecx, edi, esi)
{
	int i = a;
	int j = b;
	int k = c;
 	return i + j - k + d;
}

int function()
{
	char * buf = malloc(10);
	strcpy(buf, "123456\0");
	int i = shit(3, 2, 4, 2);
	printf("%d\n", i);
	return 0;
}
